package main

//
//import (
//	"fmt"
//	"gin-ranking/common/zinx/znet"
//	"io"
//	"net"
//	"time"
//)
//
//func main() {
//	fmt.Println("client start")
//	time.Sleep(1 * time.Second)
//
//	// 1、直接连接远程服务器，得到一个连接
//	conn, err := net.Dial("tcp", "127.0.0.1:8999")
//	if err != nil {
//		fmt.Println("client dial err:", err)
//		return
//	}
//
//	for {
//		// 发送封包的 msg
//		dp := znet.NewDataPack()
//
//		binaryMsg, err := dp.Pack(znet.NewMsgPackage(0, []byte("zinx 0.6 client test message")))
//		if err != nil {
//			fmt.Println("client pack err:", err)
//			return
//		}
//
//		if _, err := conn.Write(binaryMsg); err != nil {
//			fmt.Println("client conn write err:", err)
//			return
//		}
//
//		// 1 先读取流中的head部分，得到ID和dataLen
//		binaryHead := make([]byte, dp.GetHeadLen())
//		if _, err := io.ReadFull(conn, binaryHead); err != nil {
//			fmt.Println("client read head err:", err)
//			return
//		}
//
//		// 将二进制的head拆包到msg结构体中
//		msgHead, err := dp.Unpack(binaryHead)
//		if err != nil {
//			fmt.Println("client unpack err:", err)
//			break
//		}
//
//		if msgHead.GetMsgLen() > 0 {
//			// 2 再根据dataLen进行第二次读取，读出data
//			msg := msgHead.(*znet.Message)
//			msg.Data = make([]byte, msg.GetMsgLen())
//			if _, err := io.ReadFull(conn, msg.Data); err != nil {
//				fmt.Println("read msg data error: ", err)
//				return
//			}
//			fmt.Println("---> Recv Server Msg: ID = ", msg.Id, ", len = ", msg.DataLen, ", data = ", string(msg.Data))
//		}
//
//		// CPU阻塞， 每隔1s进行连接
//		time.Sleep(1 * time.Second)
//	}
//}
